/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.pruebaes.vistas;

import com.pruebaes.entidades.Inspectores;
import com.pruebaes.excepciones.BorrarException;
import com.pruebaes.excepciones.ConsultarException;
import com.pruebaes.excepciones.GrabarException;
import com.pruebaes.excepciones.InsertarException;
import com.pruebaes.servicios.InspectoresFacade;
import com.pruebaes.utilitarios.Formulario;
import com.pruebaes.utilitarios.MensajesErrores;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author luisfernando
 */
@ManagedBean(name = "inspectores")
@ViewScoped
public class inspectoresBean implements  Serializable{
private static final long serialVersionUID = 1L;
    /**
     * Creates a new instance of inspectoresBean
     */
    public inspectoresBean() {
    }

private List<Inspectores>listaInspectores;
private Inspectores inspector;
private Formulario formulario= new Formulario();
@EJB private InspectoresFacade ejbInspectores;
@ManagedProperty(value="#{seguridad}")
private seguridadBean seguridadBean;

public String buscar(){
    Map parametros = new HashMap();
   // parametros.put(";where","o.inspector =true");
    parametros.put(";orden","o.distrito");
    try {
        listaInspectores = ejbInspectores.encontarParametros(parametros);
    } catch (ConsultarException ex) {
        MensajesErrores.fatal(ex.getMessage()+":"+ex.getCause());
        Logger.getLogger(inspectoresBean.class.getName()).log(Level.SEVERE, null, ex);
    }
    return null;
    
}
public  String insertar(){
if(validar()){
    return null;
}    
    try {
        ejbInspectores.create(inspector,seguridadBean.getUsuario());
    } catch (InsertarException ex) {
        MensajesErrores.fatal(ex.getMessage()+";"+ex.getCause());
        Logger.getLogger(inspectoresBean.class.getName()).log(Level.SEVERE, null, ex);
    }
    formulario.cancelar();
    buscar();
    return null;
}

private boolean validar(){
    if((inspector.getCedula()==null)||(inspector.getCedula().isEmpty())){
        MensajesErrores.advertecia("Necesita ingresar CI");
        return true;
    }
    if ((inspector.getDistrito()==null)||(inspector.getDistrito().isEmpty())){
        MensajesErrores.advertecia("Ingresar distrito");
        return true;
    }
    return false;
}

public String grabar(){
    if(validar()){
        return null;
    }
    try {
        ejbInspectores.edit(inspector, seguridadBean.getUsuario());
    } catch (GrabarException ex) {
        MensajesErrores.fatal(ex.getMessage()+":"+ex.getCause());
        Logger.getLogger(inspectoresBean.class.getName()).log(Level.SEVERE, null, ex);
    }
    formulario.cancelar();
    buscar();
    return null;
}

public  String borrar(){
    try {
        ejbInspectores.remove(inspector, seguridadBean.getUsuario());
    } catch (BorrarException ex) {
        MensajesErrores.fatal(ex.getMessage()+":"+ex.getCause());
        Logger.getLogger(inspectoresBean.class.getName()).log(Level.SEVERE, null, ex);
    }
    formulario.cancelar();
    buscar();
    return null;
}
 public String nuevo(){
     formulario.insertar();
     inspector = new Inspectores();
     return null;   
 }
 
 public String modificar(Inspectores inspector){
     this.inspector=inspector;
     formulario.editar();
     buscar();
     return null;
 }
 
 public String eliminar(Inspectores inspector){
     this.inspector= inspector;
     formulario.borrar();
     return null;
 }

    /**
     * @return the listaInspectores
     */
    public List<Inspectores> getListaInspectores() {
        return listaInspectores;
    }

    /**
     * @param listaInspectores the listaInspectores to set
     */
    public void setListaInspectores(List<Inspectores> listaInspectores) {
        this.listaInspectores = listaInspectores;
    }

    /**
     * @return the inspector
     */
    public Inspectores getInspector() {
        return inspector;
    }

    /**
     * @param inspector the inspector to set
     */
    public void setInspector(Inspectores inspector) {
        this.inspector = inspector;
    }

    /**
     * @return the formulario
     */
    public Formulario getFormulario() {
        return formulario;
    }

    /**
     * @param formulario the formulario to set
     */
    public void setFormulario(Formulario formulario) {
        this.formulario = formulario;
    }

    /**
     * @return the seguridadBean
     */
    public seguridadBean getSeguridadBean() {
        return seguridadBean;
    }

    /**
     * @param seguridadBean the seguridadBean to set
     */
    public void setSeguridadBean(seguridadBean seguridadBean) {
        this.seguridadBean = seguridadBean;
    }
 
}